/**
 * Project Name:51chuxing-web
 * File Name:FrontUserUtils.java
 * Package Name:com.gamma.nplus1.modules.sys.utils
 * Date:2016年6月20日下午10:08:55
 * Copyright (c) 2016, nplus1 Co., Ltd. All Rights Reserved.
 *
*/

package com.gamma.nplus1.modules.sys.utils;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang3.StringUtils;

import com.gamma.nplus1.common.config.Global;
import com.gamma.nplus1.common.utils.CacheUtils;
import com.gamma.nplus1.common.utils.CookieUtils;
import com.gamma.nplus1.common.utils.ObjectUtils;
import com.gamma.nplus1.modules.sys.entity.FrontUser;

/**
 * ClassName:FrontUserUtils <br/>
 * Function: 前端用户工具类. <br/>
 * Date:     2016年6月20日 下午10:08:55 <br/>
 * @author   jeno
 * @version  
 * @since    JDK 1.6
 */
public class FrontUserUtils {

    public static final String MEMFIX = Global.getConfig("memfix");
    
    /** 前台登录用户ehcache前缀 */
    public static final String WEB_USER_LOGIN_PREFIX = MEMFIX + "web_user_login_";
    public static final int USER_TIME = Integer.parseInt(Global.getConfig("USER_TIME"));//前台登录用户缓存6小时
    public static final String USER_CURRENT_LOGINTIME = MEMFIX+"USER_CURRENT_LOGINTIME_";//记录当前用户当前的登录时间，下次登录时会更新此缓存
    
    /**
     * 
     * getLoginedFrontUser:(获取前台登录用户). <br/>
     *
     * @author jeno
     * @param request
     * @return
     * @since JDK 1.6
     */
    public static FrontUser getLoginedFrontUser(HttpServletRequest request) {
        String userKey = CookieUtils.getCookie(request, WEB_USER_LOGIN_PREFIX);
        if(StringUtils.isNotEmpty(userKey)){
            FrontUser user = (FrontUser) CacheUtils.get(userKey);
            if(ObjectUtils.isNotNull(user)){
                return user;
            }
        }
        return null;
    }
    
    /**
     * 获取前台登录用户ID
     * @param request
     * @return 返回用户ID
     */
    public static String getLoginUserId(HttpServletRequest request){
        FrontUser user = getLoginedFrontUser(request);
        if(user!=null){
            return user.getId();
        }
        return null;
    }
}

